\subsection{Handling Video Data}
\label{Implementation:videodata}
Because of the need for grouping frames into network coded generations, it is necessary to be able to extract individual frames from the specific video stream, and identify the I-frames. The generations to be network coded should consist of continuous buffers, which means the frames should be serialised. This process should be done at runtime, and on the compressed video data. Furthermore, capabilities of decoding the video into an actual stream of pictures is needed. These features can be implemented by using the source code in \verb|libavcodec|, a C library provided by FFmpeg, described in Section \ref{implementation:software:externaltools}

Functionality of rendering the video should also be provided. The implementation is done in C++ which is why the Qt framework has been chosen to provide rendering capabilities. Qt runs on various platforms, which enables the implementation to be used on multiple operating systems.

%As the implementation is done with C++ on various operating systems, the Qt framework provides the needed functionality for video rendering.
